doors decks logic roofing siding music java logic programming lisp glass prolog replacement windows artificial intelligence cubase c++ door games